#include "ProjectModel.h"
#include "modelfactory.h"

ModelFactory* ModelFactory::m_pThis = NULL;

////////////////////////////////////////////////////////////////////////////////////////////////

ModelFactory::ModelFactory()
{
}

////////////////////////////////////////////////////////////////////////////////////////////////

ModelFactory::~ModelFactory()
{
}

////////////////////////////////////////////////////////////////////////////////////////////////

ModelFactory& ModelFactory::instance()
{
  if ( !m_pThis )
  {
    m_pThis = new ModelFactory;
  }
  return *m_pThis;
}

////////////////////////////////////////////////////////////////////////////////////////////////

void ModelFactory::destroy()
{
  if ( m_pThis )
  {
    delete m_pThis;
    m_pThis = NULL;
  }
}

////////////////////////////////////////////////////////////////////////////////////////////////

QObject* ModelFactory::createModel(ModelType type, QObject* parent)
{
  QObject* pBaseModel = NULL;

  switch ( type )
  {
  case  MT_ProjectModel:
    pBaseModel = new ProjectModel(parent);
    break;

  default:
    break;
  }

  return pBaseModel;
}
